﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Libreria.DAL;

namespace Libreria.RFID.Modelo

    {

        [CAD(true, CAD.TiposBD._SQLServer) ]
        public class ProgramaDeFormacion
        {
            // Atributo de abstracción
            private MOR accesoADatos;

            private Int32? codigopf;
            private String nombre;
            private Int32? codigoNivel;


            // Constructor de la clase
            public ProgramaDeFormacion()
            {
            }

            public ProgramaDeFormacion(string cadenaDeConexion)
            {
                this.accesoADatos = MOR.Instance(cadenaDeConexion);
            }


            //Encapsulamiento y mapeo de atributos
            [Tipo(Tipo.TiposSQLServer._int, true, true)]
            public Int32? Codigopf
            {
                get { return codigopf; }
                set {codigopf = value; }
            }

            [Tipo(Tipo.TiposSQLServer._int)]
            public Int32? CodigoNivel
            {
                get { return codigoNivel; }
                set { codigoNivel = value; }
            }

            [Tipo(Tipo.TiposSQLServer._varchar)]
            public String Nombre
            {
                get { return nombre; }
                set { nombre = value; }
            }

            public void crear()
            {
                this.Codigopf = this.accesoADatos.crearRegistro(this);
            }

            public List<ProgramaDeFormacion> consultar()
            {
                List<Object> registros = this.accesoADatos.consultarRegistros(this, false);
                List<ProgramaDeFormacion> resultado = new List<ProgramaDeFormacion>();
                foreach (Object registro in registros)
                {
                    resultado.Add((ProgramaDeFormacion)registro);
                }
                return resultado;
            }

            public ProgramaDeFormacion consultarPorCodigo(Int32 identificador)
            {
                this.Codigopf = codigopf;
                List<Object> registros = this.accesoADatos.consultarRegistros(this, true);
                ProgramaDeFormacion resultado = null;
                if (registros != null)
                {
                    if (registros.Count == 1)
                    {
                        resultado = (ProgramaDeFormacion)registros[0];
                    }
                }
                return resultado;
            }

            public void actualizar()
            {
                this.accesoADatos.actualizarRegistro(this);
            }

            public void eliminar()
            {
                this.accesoADatos.borrarRegistro(this);
            }

        }
    }


